package com.xishu.annotation.dao;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 模糊搜索
 * 如果没有配置，默认按照相等来算
 */
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD})
public @interface Search {
    public boolean prefixLike() default false;

    public boolean like() default false;

    public boolean ignore() default false;

    public String fieldName() default "";

    //大于
    public boolean gt() default false;

    //大于等于
    public boolean gte() default false;

    //小于等于
    public boolean lte() default false;

    //范围内查询
    public boolean in() default false;

    //组，一个组里面，有一个条件为真，那么整个条件就是为真，也就是或的关系
    public String groupName() default "";

    //按位与操作
    public boolean bitAnd() default false;

    //多个字段有一个字段取值为true即可
    public boolean or() default false;

    //多个字段的列表，用逗号分隔
    public String fieldList() default "";

    //判断某个字段的值是否存在
    public boolean exist() default false;

    //是否为空
    public boolean isNull() default false;

    //用或模糊查询
    public boolean orLike() default false;

    //哪些字段需要忽略大小写
    public String ignoreCaseField() default "";
}
